package com.cskaoyan._01abstractclazz._02basic;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/10 17:39
 **/
/*
抽象类特点:
抽象类的特点我们主要从以下角度：

1. 类名命名特点是什么?
    大驼峰,Base或者Abstract开头
2. 能用哪些修饰符？
    public  或者 默认
3. 成员特点
   1. 普通成员--->OK
   2. 静态成员--->ok
   3. 抽象方法--->ok
4. 构造器----->ok
5. 代码块----->ok


结论:
    一个抽象类,普通类有的抽象类都有,抽象类在普通类的基础上多了一个抽象方法
 */
public class Demo {
    public static void main(String[] args) {

    }
}

abstract class AbstractAnimal{
    // 定义成员变量
    int a = 1;

    // 定义成员方法
    public void m1() {

    }
    // 定义静态成员变量
    static int b = 2;

    // 定义静态成员方法
    static void m2() {

    }
    // 构造代码块
    {

    }
    // 静态代码块
    static {

    }

    // 构造方法

    public AbstractAnimal(int a) {
        this.a = a;
    }

    public AbstractAnimal() {
    }
    // 抽象方法
    abstract void m3();
}